//package Demo2_25;
//
///**
// * Created with IntelliJ IDEA.
// * Description:
// * User：Lenovo
// * Date:2025-02-25
// * Time:20:28
// */
//// 定义二叉树节点类
//class TreeNode {
//    int val;
//    TreeNode left;
//    TreeNode right;
//    TreeNode() {}
//    TreeNode(int val) { this.val = val; }
//    TreeNode(int val, TreeNode left, TreeNode right) {
//        this.val = val;
//        this.left = left;
//        this.right = right;
//    }
//}
//
//class Solution3 {
//    public boolean isBalanced(TreeNode root) {
//        //时间复杂度为N^2
////        if (root == null) {
////            return true;
////        }
////        int leftHeight = maxDepth(root.left);
////        int rightHeight = maxDepth(root.right);
////
////        return Math.abs(leftHeight - rightHeight) <= 1
////                && isBalanced(root.left)
////                && isBalanced(root.right);
////    }
////
////    public int maxDepth(TreeNode root) {
////        if (root == null) {
////            return 0;
////        }
////        int leftH = maxDepth(root.left);
////        int rightH = maxDepth(root.right);
////        return leftH > rightH ? leftH + 1 : rightH + 1;
////    }
//
//        //时间复杂度为N
//        if(root==null){
//            return true;
//        }
//        return maxDepth(root)>=0;
//    }
//    public int maxDepth(TreeNode root){
//        if(root==null){
//            return 0;
//        }
//        int leftH=maxDepth(root.left);
//        if(leftH==-1){
//            return -1;
//        }
//        int rightH=maxDepth(root.right);
//        if(leftH>=0&&rightH>=0&&Math.abs(leftH-rightH)<=1){
//            return Math.max(leftH,rightH)+1;
//        }
//        else{
//            return -1;
//        }
//    }
//
//
//    public static void main(String[] args) {
//        // 创建一个平衡二叉树
//        TreeNode balancedRoot = new TreeNode(3);
//        balancedRoot.left = new TreeNode(9);
//        balancedRoot.right = new TreeNode(20);
//        balancedRoot.right.left = new TreeNode(15);
//        balancedRoot.right.right = new TreeNode(7);
//
//        // 创建一个不平衡二叉树
//        TreeNode unbalancedRoot = new TreeNode(1);
//        unbalancedRoot.left = new TreeNode(2);
//        unbalancedRoot.right = new TreeNode(2);
//        unbalancedRoot.left.left = new TreeNode(3);
//        unbalancedRoot.left.right = new TreeNode(3);
//        unbalancedRoot.left.left.left = new TreeNode(4);
//        unbalancedRoot.left.left.right = new TreeNode(4);
//
//        // 创建 Solution 类的实例
//        Solution3 solution = new Solution3();
//
//        // 测试平衡二叉树
//        boolean isBalanced1 = solution.isBalanced(balancedRoot);
//        System.out.println("第一棵树是否为平衡二叉树: " + isBalanced1);
//
//        // 测试不平衡二叉树
//        boolean isBalanced2 = solution.isBalanced(unbalancedRoot);
//        System.out.println("第二棵树是否为平衡二叉树: " + isBalanced2);
//    }
//}
